#ifndef VARIANT_H
#define VARIANT_H

#include"Sheet.h"
#include<string>

class Variant
{
public:
	Variant();
	~Variant();
	Variant& operator = ( const Variant& );
	Variant( const Variant& );

	Variant( int _Value );
	Variant( float _Value );
	Variant( const char* _Value );

public:
	int			GetType()	const;
	int			toInt()		const;
	float		toFloat()	const;
	const char*	toStr()		const;
	void		Set( int _Value );
	void		Set( float _Value );
	void		Set( const char* _Value );
	

public:
	void WriteMemory( void* _pAddr ) const;
	void ReadMemory( const void* _pAddr );

private:
	template< typename A , typename B > struct max_size
	{
		static const int PTR_SIZE = sizeof( A ) > sizeof( B ) ? sizeof( A ) : sizeof( B );
	};

	char	m_vBuf[ max_size<std::string , float>::PTR_SIZE ];
	int		m_nType;

	
	
};

#endif